home *** CD-ROM | disk | FTP | other *** search
/ Champak 141 / (Vol 141) Oct 17 2011.iso / Games / flight-of-the-museum.swf / scripts / engine / dynamicObjects / Indian.as < prev    next >
Encoding:
Text File  |  2011-10-17  |  3.1 KB  |  129 lines

  1. package engine.dynamicObjects
  2. {
  3.    import engine.BitmapLibrary;
  4.    import engine.Engine;
  5.    import engine.WorldScene;
  6.    
  7.    public class Indian extends DynamicObject
  8.    {
  9.        
  10.       
  11.       private var _jumpTimer:Number = 0;
  12.       
  13.       private var _lobMode:Boolean = false;
  14.       
  15.       private var _spearTimer:Number;
  16.       
  17.       private var _hitTimer:Number = 0;
  18.       
  19.       private var _hit:Boolean = false;
  20.       
  21.       private var _spearDelay:Number = 200;
  22.       
  23.       public function Indian()
  24.       {
  25.          _spearDelay = 200;
  26.          _spearTimer = Math.random() * _spearDelay;
  27.          _hit = false;
  28.          _hitTimer = 0;
  29.          _jumpTimer = 0;
  30.          _lobMode = false;
  31.          _bmdArray = BitmapLibrary.Clips.DYN_Indian;
  32.          super(_bmdArray[0]);
  33.          _animationMethod = ANIM_METHODS.Arbitrary;
  34.          _spearDelay = 200 - Engine.Instance.Difficulty * 5;
  35.          if(_spearDelay < 50)
  36.          {
  37.             _spearDelay = 50;
  38.          }
  39.          _drawMethod = DMETHOD.Fast;
  40.          _objectType = OBJ_TYPES.GP;
  41.          _persistent = true;
  42.          solid = false;
  43.          z = 1;
  44.       }
  45.       
  46.       override public function fStep() : *
  47.       {
  48.          super.fStep();
  49.          _currentFrame += _frameSpeed;
  50.          --_hitTimer;
  51.          if(_hitTimer < 0)
  52.          {
  53.             _hit = false;
  54.          }
  55.          if(_hit)
  56.          {
  57.             if(Math.random() < 0.2)
  58.             {
  59.                WorldScene.Instance.generateSmokeParticles(this,1);
  60.             }
  61.             if(_currentFrame < 41 || _currentFrame >= _bmdArray.length - 1)
  62.             {
  63.                _jumpTimer = 10;
  64.                _currentFrame = 41;
  65.             }
  66.             if(_jumpTimer > 0)
  67.             {
  68.                --_jumpTimer;
  69.                _frameSpeed = 0;
  70.             }
  71.             else
  72.             {
  73.                _frameSpeed = 1;
  74.             }
  75.          }
  76.          if(!_hit)
  77.          {
  78.             if(_currentFrame > 40)
  79.             {
  80.                _currentFrame = 1;
  81.                _frameSpeed = 0;
  82.             }
  83.             --_spearTimer;
  84.             if(Math.floor(_spearTimer) == 20)
  85.             {
  86.                _currentFrame = 2;
  87.                _frameSpeed = 1;
  88.             }
  89.             if(_spearTimer < 0)
  90.             {
  91.                _spearTimer = _spearDelay;
  92.                if(CameraFocus)
  93.                {
  94.                   Main.Instance.playSound("throw");
  95.                }
  96.                if(_lobMode)
  97.                {
  98.                   WorldScene.Instance.lobProjectile(this,new Spear());
  99.                }
  100.                else
  101.                {
  102.                   WorldScene.Instance.createProjectile(this,new Spear());
  103.                }
  104.             }
  105.             if(_currentFrame == 1)
  106.             {
  107.             }
  108.          }
  109.       }
  110.       
  111.       public function get Hit() : Boolean
  112.       {
  113.          return _hit;
  114.       }
  115.       
  116.       public function set LobMode(val:Boolean) : *
  117.       {
  118.          _lobMode = val;
  119.       }
  120.       
  121.       public function hit() : *
  122.       {
  123.          _hit = true;
  124.          _hitTimer = 220;
  125.          _frameSpeed = 1;
  126.       }
  127.    }
  128. }
  129.